C语言中对数组,指针,下标,的理解 | 您所在的位置:网站首页 › 数组名 指针 区别 › C语言中对数组,指针,下标,的理解 |
# C语言中,对一维数组的指针的下标的理解
解决问题:1.数组的意义和类型 2.数组名的类型和意义 3.指向数组的指针的意义 4.指针加下标的意义 例: 一、 int a[10]; 1、a[10]是数组,其中类型是整型。 2、a是数组名,它的值是指针常量,即数组第一个元素的地址,类型取决于数组元素的类型。 此例中,a 的意义“指向int的 常量指针”。(大多数情况下,数组名的意义) 注意:1.不要根据以上事实得出数组和指针是相同的结论,数组和指针具有一些完全不同的特性。 2.数组具有确定数量的元素,而指针只是一个标量值。编译器用数组名来记住这些属性,只有当数组名在表达式中使用时,编译器才会为它产生一个指针常量。 3.注意2中说明数组名的值是指针常量,而不是指针变量,指针常量的值是固定的。所指向的是内存中数组的起始位置。 4.是否可以修改这个指针常量。理论上,修改是把真个数组移动到其他位置。但是,程序完成链接后,内存中的数组位置已经固定了,所以想要修改已经晚了。所以说,数组名的值是一个指针常量。 二、结论:C的下标引用与间接引用表达式是相等的 例如:int a[10]; int *b=a; *(a+1)与a[1]相等 b与a相等 *b与a[0]相等 b[1]与 间接运算 (b+1)相等 ,即与 星号(a+1)相等。 所以b[1]与a[1]相等 注意:不要越界。例如b[11]是越界的在以上那个例子中 |
CopyRight 2018-2019 实验室设备网 版权所有 |